package com.axioma.dbmaint.service;

import java.util.List;

import com.axioma.dbmaint.datalayer.dao.DatabaseRepository;
import com.axioma.dbmaint.datalayer.dao.ServerRepository;
import com.axioma.dbmaint.model.Database;
import com.axioma.dbmaint.model.Server;

public interface ManagementService {

   /* Retrieve the list of database servers that are configured*/
   List<Server> getServers();

   /* Add a server */
   void addServer(Server server);
   
   /* Retrieve all Axioma 7x databases on a given server, with information about each */
   List<Database> getDatabases(String serverName);
   
   /* Find a database with a specific schema version */
   List<Database> findDatabases(String schemaVersion);
   
   /* Create a new, empty Axioma 7x database on a given server for a product version (eg, 7.2, 7.3) */
   void createDatabase(String serverName, String databaseName, String productVersion);
   
   /* Reset an existing Axioma 7x database */
   void resetDatabase(String serverName, String databaseName);
   
   /* Make a copy of an existing Axioma 7x database */
   void copyDatabase(String serverName, String sourceDatabaseName, String targetDatabaseName);
}
